import request from '@/utils/request'
import store from '@/store'

// eslint-disable-next-line no-undef
const qs = require('qs')

// 用户角色
export function getuserinfo (id) {
  return request({
    url: '/ECS/sys/user/' + id,
    method: 'get',
    params: ''
  })
}

// 安全动态
export function dynamic (d) {
  return request({
    url: '/ECS/sys/article/dynamicInformation',
    method: 'get',
    params: d
  })
}

// 首页统计(旧)
export function dataCount (d) {
  return request({
    url: '/ECS/sys/article/dataCount',
    method: 'get',
    params: d
  })
}

// 首页统计(新)
export function businessCount () {
  return request({
    url: '/ECS/sys/article/businessCount',
    method: 'get',
    params: ''
  })
}

// 信息详情
export function desc (id, userID) {
  let createUserID = store.state.user.userInfo.linkdoodID
  if (userID) {
    createUserID = userID
  }
  let url = '/ECS/sys/article/' + id + '?userID=' + createUserID
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 事件风险列表
export function getEventRisk (type, d) {
  let url = type == 2 ? '/ECS/sys/risk' : '/ECS/sys/event'
  return request({
    url: url,
    method: 'get',
    params: d
  })
}


// 通报管理详情
export function eventRiskDesc (type, id, userID) {
  let createUserID = store.state.user.userInfo.linkdoodID
  if (userID) {
    createUserID = userID
  }
  let url
  if (type == 2 || type == 4) {
    url = '/ECS/sys/risk/' + id + '?createUserID=' + createUserID
  } else {
    url = '/ECS/sys/event/' + id + '?createUserID=' + createUserID
  }
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}


// 信息类型
export function infotype () {
  let url = '/ECS/sys/eventType?parentID=0'
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 批量处理
export function batch1 (d) {
  return request({
    url: '/ECS/sys/transfer/batch',
    method: 'post',
    data: qs.stringify(d)
  })
}

// 请示领导列表
export function leader () {
  let url = '/ECS/sys/user/leader'
  return request({
    url: url,
    method: 'get'
  })
}

// 领导列表
export function lead () {
  let url = '/ECS/sys/user'
  return request({
    url: url,
    method: 'get',
    params: { roleID: 1 }
  })
}

// 专家列表
export function experts () {
  let url = '/ECS/sys/user'
  return request({
    url: url,
    method: 'get',
    params: { roleID: 6 }
  })
}

// 本级地方网络安全主管列表
export function liaison () {
  let url = '/ECS/sys/user/liaison'
  return request({
    url: url,
    method: 'get'
  })
}

// 提交研判
export function judged (d) {
  return request({
    url: '/ECS/sys/judged',
    method: 'post',
    data: qs.stringify(d)
  })
}

// 事件/预警  --领导操作
export function updateEventRisk (type, d) {
  let url = type == 3 ? '/ECS/sys/eventApproval' : '/ECS/sys/riskApproval'
  return request({
    url: url,
    method: 'put',
    params: d
  })
}

// 获取运营单位列表
export function Operators (id) {
  let url = '/ECS/sys/organize/listOperators?orgID=' + id
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 获取从属本级单位的各级监管单位和被监管单位
export function getUnit (id) {
  let url = '/ECS/sys/organize/listTree?orgID=' + id
  return request({
    url: url,
    method: 'post',
    data: qs.stringify()
  })
}

// 获取单位
export function getOrganize (id) {
  let url = '/ECS/sys/organize/off?id=' + id
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 获取监管单位
export function Offices () {
  let url = '/ECS/sys/organize/off?id=3'
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 获取被监管单位
export function CompanyList () {
  let url = '/ECS/sys/organize/off?id=4'
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 获取技术支撑单位
export function safeList () {
  let url = '/ECS/sys/organize/off?id=5'
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 通报管理重新下发查询支撑单位
export function getTechnologyList (articleID, type) {
  let url = '/ECS/sys/organizeGroup/technicalSupportList?articleID=' + articleID + '&type=' + type
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 获取组织架构
export function orgList () {
  let url = '/ECS/sys/organize/dailyOrgs'
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 模板列表
export function templateList (formType) {
  let url = '/ECS/sys/template'
  return request({
    url: url,
    method: 'get',
    params: { formType: formType }
  })
}

// 模板属性列表
export function getTemplateAttr (id, isFeedback) {
  isFeedback = isFeedback || 2
  let url = '/ECS/sys/template/' + id
  return request({
    url: url,
    method: 'get',
    params: {
      isFeedback: isFeedback
    }
  })
}

// 下发
export function release (d, type) {
  let url = type == 2 ? '/ECS/sys/risk/release' : '/ECS/sys/event/release'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 我的任务重新编辑下发
export function releaseEvent (d, type) {
  let url = type == 2 ? '/ECS/sys/risk' : '/ECS/sys/event'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 地方下发
export function releaseSub (d, type) {
  let url = type == 2 ? '/ECS/sys/reFeedback/release' : '/ECS/sys/reFeedback/release'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 获取反馈列表
export function summary (type, d) {
  let url = '/ECS/sys/reFeedback/summary'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 处理操作
export function operation (d) {
  let url = '/ECS/sys/transfer/add'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 流转记录
export function flowList (d) {
  let url = '/ECS/sys/transfer/list'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}


// 我的任务
export function taskList (d) {
  let url = '/ECS/sys/reFeedback/list'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

export function getListJudged (d) { // 专家
  let url = '/ECS/sys/judged'
  return request({
    url: url,
    method: 'get',
    params: d
  })
}

// 任务详情
export function taskList2 (d, type) {
  let url = type == 2 ? '/ECS/sys/reFeedback/detail' : '/ECS/sys/reFeedback/detail'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 专家任务详情
export function baseInfo (id) { // 专家
  let url = '/ECS/sys/judged/' + id
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 更新专家研判
export function updateJudged (id, d) { // 专家
  let url = '/ECS/sys/judged/' + id
  return request({
    url: url,
    method: 'put',
    params: d
  })
}

// 任务 保存按钮
export function feedbackSubmit (d) {
  let url = '/ECS/sys/reFeedback/submit'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 每日零报告列表reportList
export function reportList (d) {
  return request({
    url: '/ECS/sys/dailyReport/list',
    method: 'post',
    data: qs.stringify(d)
  })
}

// 添加每日零报告
export function addupdate (type, d) {
  let url = ''
  if (type == 1) {
    url = '/ECS/sys/dailyReport/addupdate'
  } else {
    url = '/ECS/sys/dailyReport/release'
  }
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 每日零报告选择单位和模板属性
export function dailyOrgs (d) {
  let url = '/ECS/sys/organize/dailyOrgs'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 每日零报告发布
export function dailyRelease (d) {
  let url = '/ECS/sys/dailyReport/release'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 每日零报告详情
export function reportDesc (type, id) {
  let url = ''
  let nd = {}
  if (type == 1) {
    url = '/ECS/sys/dailyReport/detail'
    nd.id = id
  } else {
    url = '/ECS/sys/dailyReport/detailSub'
    nd.fId = id
  }
  return request({
    url: url,
    method: 'get',
    params: nd
  })
}

// 反馈详情列表
export function reportTable (nd) {
  return request({
    url: '/ECS/sys/dailyFeedback/summary',
    method: 'get',
    params: nd
  })
}

// 地方填报零报告
export function reportFeedback (nd) {
  return request({
    url: '/ECS/sys/dailyFeedback/update',
    method: 'post',
    data: qs.stringify(nd)
  })
}

// 今日快报 详情
export function todayDesc (id) {
  return request({
    url: '/ECS/sys/bulletin/' + id,
    method: 'get',
    params: ''
  })
}

// 今日快报-请示领导-确认
export function todayAsk (id, d) {
  let url = '/ECS/sys/bulletinApproval/' + id
  return request({
    url: url,
    method: 'put',
    params: d
  })
}

// 地方快报 -重新选题 -归档
export function topocDelete (d) {
  let url = '/ECS/sys/bulletin/delete'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 恢复
export function reUse (id) {
  let url = '/ECS/sys/article/changeStatus'
  return request({
    url: url,
    method: 'put',
    params: { isEnabled: 1, ids: id }
  })
}

// 不采用
export function noUse (ids) {
  let nd = typeof ids === 'object' ? ids.join(',') : ids
  let url = '/ECS/sys/article/changeStatus'
  return request({
    url: url,
    method: 'put',
    params: { isEnabled: 3, ids: nd }
  })
}


// 信息共享 信息栏目列表
export function shareColumnList (nd) {
  return request({
    url: '/ECS/sys/informationShareColumn',
    method: 'get',
    params: nd
  })
}

// 信息共享列表
export function shareList (nd) {
  return request({
    url: '/ECS/sys/informationShare',
    method: 'get',
    params: nd
  })
}

// 添加信息共享
export function shareAdd (d) {
  return request({
    url: '/ECS/sys/informationShare',
    method: 'post',
    data: qs.stringify(d)
  })
}

// 信息共享删除
export function shareDel (id) {
  return request({
    url: '/ECS/sys/informationShare/' + id,
    method: 'delete'
  })
}

// 新增资产
export function addzcList (d) {
  return request({
    url: '/ECS/sys/asset',
    method: 'post',
    data: qs.stringify(d)
  })
}

// 获取资产列表
export function getZcList (nd) {
  return request({
    url: '/ECS/sys/asset',
    method: 'get',
    params: nd
  })
}

// 获取资产详情
export function getZcDesc (id) {
  return request({
    url: '/ECS/sys/asset/' + id,
    method: 'get',
    params: ''
  })
}

// 删除资产
export function deleteBatch (d) {
  return request({
    url: '/ECS/sys/asset/deleteBatch',
    method: 'post',
    data: qs.stringify(d)
  })
}

// 上下级系统资产上报
export function reportAssetIDs (d) {
  return request({
    url: '/ECS/sys/consumer/reportAssetIDs',
    method: 'post',
    data: qs.stringify(d)
  })
}

// 事件等级映射
export function eventLevelToString (v) {
  let d = ['', '特别重大', '重大', '较大', '一般', '其他']
  return d[v]
}

export function eventGradeOptions () {
  let options = [{
    value: 1,
    label: '特别重大'
  }, {
    value: 2,
    label: '重大'
  }, {
    value: 3,
    label: '较大'
  }, {
    value: 4,
    label: '一般'
  }, {
    value: 5,
    label: '其他'
  }]
  return options
}

export function getWeek (n) {
  if (typeof n == 'string') n = parseInt(n)
  let nd = ['', '周日', '周一', '周二', '周三', '周四', '周五', '周六']
  return nd[n]
}

// 预警等级映射
export function riskLevelToString (v) {
  let d = ['', '很高', '高', '中等', '低', '很低']
  return d[v]
}

export function riskLeveOptions () {
  return [{ value: 1, label: '很高' }, { value: 2, label: '高' }, { value: 3, label: '中等' }, { value: 4, label: '低' }, { value: 5, label: '很低' }]
}

export function riskTypeToString (v) {
  let d = ['风险提示', '红', '橙', '黄', '蓝']
  return d[v]
}

export function riskTypeOptions () {
  return [{ value: 0, label: '风险提示' }, { value: 1, label: '红' }, { value: 2, label: '橙' }, { value: 3, label: '黄' }, { value: 4, label: '蓝' }]
}

export function processStatus (v) {
  let d = ['', '请示领导', '领导退回', '领导同意']
  return d[v]
}

export function todayStatus (v) {
  let d = ['', '请示领导', '领导退回', '领导同意']
  return d[v]
}

export function currentStatus (v) {
  let d = ['', '值班员审批', '领导审批', '审批完成', '等待反馈', '反馈完毕', '已归档']
  return d[v]
}


// 获取专家组织信息
export function getZjzList () {
  return request({
    url: '/ECS/sys/organize/expert?roleID=6',
    method: 'get',
    params: ''
  })
}

// 获取技术支撑专家组织信息
export function getItsList () {
  return request({
    url: '/ECS/sys/organize/expert/tech?roleID=6',
    method: 'get',
    params: ''
  })
}

// 获取专家组织下的人员
export function getZjUserList (id) {
  let url = '/ECS/sys/user/expert?orgID=' + id
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 获取技术支撑单位列表
export function getExpertList (nd) {
  let url = '/ECS/sys/organizeGroup/technicalSupport'
  return request({
    url: url,
    method: 'get',
    params: nd
  })
}
// 获取技术支撑单位详情
export function getExpertDesc (id) {
  let url = '/ECS/sys/organizeGroup/group?orgID=' + id
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 建立技术支撑群组
export function createGroupTechnology (d) {
  return request({
    url: '/ECS/sys/organizeGroup/group',
    method: 'post',
    data: qs.stringify(d)
  })
}

// 新增/修改技术支撑组长
export function addIts (d) {
  return request({
    url: '/ECS/sys/organizeGroup/add',
    method: 'post',
    data: qs.stringify(d)
  })
}

// 查询组织下的人员信息
export function getItsUser (id) {
  let url = '/ECS/sys/user/expert?orgID=' + id
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 修改专家信息
export function updateZjuser (d) {
  return request({
    url: '/ECS/sys/user/update',
    method: 'post',
    data: qs.stringify(d)
  })
}

// 创建豆豆群
export function CreatGroup (d) {
  return request({
    url: '/ECS/sys/user/group',
    method: 'post',
    data: qs.stringify(d)
  })
}

// 资产管理-获取单位
export function getzcUnit (d) {
  let url = '/ECS/sys/organize/list'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify({ orgID: d })
  })
}

// 资产管理-审核
export function updataZc (d) {
  let url = '/ECS/sys/asset/update'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 资产管理 确认
export function getConfirm (assetID) {
  let url = '/ECS/sys/assetHistory/' + assetID
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 地方资产上报 获取组织机构
export function getUserjg () {
  let url = '/ECS/sys/organize/getOrgByUser'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify()
  })
}

// 资产管理 签章文件模板下载
export function assetDownloadFile (templateID) {
  let url = '/ECS/sys/asset/download/' + templateID
  window.location = url
}

// 资产新增检测报告
export function addAssetReport (d) {
  let url = '/ECS/sys/assetTestReport/add'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 资产汇集检测报告列表
export function getAssetReport (d) {
  let url = '/ECS/sys/assetTestReport/list'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 修改用户信息
export function editUserInfo (d) {
  let url = '/ECS/sys/user/update'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 查询主题颜色
export function getSysColor () {
  let url = '/ECS/systemSetting/themeColor'
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 查询事件类型
export function getEventType () {
  let url = '/ECS/sys/eventType/tree'
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 查询风险类型
export function getRiskType () {
  let url = '/ECS/sys/riskType'
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 修改我的任务 下发
export function releaseTask (d) {
  let url = '/ECS/sys/reEventLocal/release'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 级联 值班员 我的任务反馈
export function submitFeedback (d) {
  let url = '/ECS/sys/consumer/submitFeedback'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 工作监察 终止
export function reportStop (id) {
  let url = '/ECS/sys/dailyReport/stop?id=' + id
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 消除角标
export function removeMark (d) {
  let url = '/ECS/sys/articleOrg/update'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 数据统计
export function getEventRiskAllList (d) {
  let url = '/ECS/sys/event/getEventRiskAllList'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 我的任务中的详情导出接口
export function excelExportTask (id) {
  let url = '/ECS/sys/reFeedback/excel/' + id
  location.href = url
}


// 下载附件
export function downloadFile (name, url) {
  location.href = '/ECS/sys/attachment/download?fileUrl=' + url + '&fileName=' + name
}

// IP核实 新增
export function addIpCheck (d) {
  let url = '/ECS/sys/ipCheck'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// IP核实列表查询
export function getListIpCheck (d) {
  let url = '/ECS/sys/ipCheck'
  return request({
    url: url,
    method: 'get',
    params: d
  })
}

// IP核实  反馈详情
export function getInfoIpCheck (fid) {
  let url = '/ECS/sys/ipFeedback/' + fid
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// IP核实 修改
export function editIpCheck (d) {
  let url = '/ECS/sys/ipFeedback/update'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 信息上报
export function infoReported (url, d) {
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 综合查询 各单位上报信息统计
export function getInfoUnit (d) {
  let url = '/ECS/sys/articleOrg/articleTypeOrg'
  return request({
    url: url,
    method: 'get',
    params: d
  })
}

// 综合查询 信息类型
export function getSelectNum () {
  let url = '/ECS/sys/articleOrg/articleTypeStatistics'
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 综合查询 信息上报趋势统计
export function getInfoTrend (d) {
  let url = '/ECS/sys/articleOrg/articleTypeTrend'
  return request({
    url: url,
    method: 'get',
    params: d
  })
}

// 综合查询 总体事件类型统计
export function getEventTypeStatistics () {
  let url = '/ECS/sys/articleOrg/eventTypeStatistics'
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 综合查询 事件级别统计
export function getEventGradeStatistics () {
  let url = '/ECS/sys/articleOrg/eventGradeStatistics'
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 综合查询 总体事件处置情况统计
export function getEventRiskDisposeStatisticss (d) {
  let url = '/ECS/sys/articleOrg/eventRiskDisposeStatistics'
  return request({
    url: url,
    method: 'get',
    params: d
  })
}

// 行业
export function getIndustry () {
  let url = '/ECS/sys/industry'
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 综合查询 风险预警类别统计
export function getRiskTypeStatistics () {
  let url = '/ECS/sys/articleOrg/riskTypeStatistics'
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 综合查询 风险预警级别统计
export function getRiskGradeStatistics () {
  let url = '/ECS/sys/articleOrg/riskGradeStatistics'
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 综合查询 各单位事件风险处置统计
export function getOrgDisposeStatistics (d) {
  let url = '/ECS/sys/articleOrg/orgDisposeStatistics'
  return request({
    url: url,
    method: 'get',
    params: d
  })
}

// 综合查询 资产类型统计
export function getAssetTypeCounts () {
  let url = '/ECS/sys/asset/assetTypeCount'
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 综合查询 资产上报趋势统计
export function getAssetTrend (d) {
  let url = '/ECS/sys/asset/infoTrend'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 综合查询 各单位资产数统计
export function getAssetUnit (d) {
  let url = '/ECS/sys/asset/infoUnit'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 预案演练 预案上报
export function addReportPlan (d) {
  let url = '/ECS/sys/plan/reportPlan'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 预案演练 预案列表查询
export function getPlan (d) {
  let url = '/ECS/sys/plan'
  return request({
    url: url,
    method: 'get',
    params: d
  })
}

// 预案演练 预案详情查询
export function getPlanInfo (id) {
  let url = '/ECS/sys/plan/' + id
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 预案演练 预案修改
export function updatePlan (d) {
  let url = '/ECS/sys/plan/updatePlan'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 预案演练列表查询
export function getPlanDrillList (d) {
  let url = '/ECS/sys/planDrill/list'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 当前预案查询
export function getCurrentPlan (d) {
  let url = '/ECS/sys/plan/currentPlan'
  return request({
    url: url,
    method: 'get',
    params: d
  })
}

// 演练上报
export function reportPlanDrill (d) {
  let url = '/ECS/sys/planDrill/reportPlanDrill'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 演练列表查询
export function getPlanDrill (d) {
  let url = '/ECS/sys/planDrill'
  return request({
    url: url,
    method: 'get',
    params: d
  })
}

// 演练详情查询
export function getPlanDrillInfo (id) {
  let url = '/ECS/sys/planDrill/' + id
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 演练修改
export function updatePlanDrill (d) {
  let url = '/ECS/sys/planDrill/updatePlanDrill'
  return request({
    url: url,
    method: 'post',
    data: qs.stringify(d)
  })
}

// 预案演练查询 获取组织机构
export function getOrgTree () {
  let url = '/ECS/sys/organize/orgTree'
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}

// 查询是否需要短信通知
export function messageConfigure () {
  let url = '/ECS/systemSetting/messageConfigure'
  return request({
    url: url,
    method: 'get',
    params: ''
  })
}
